As computing systems provide more and more functions, it is increasingly important that the sheer complexity of such systems does not intimidate or alienate users. Many times, a user simply does not have the resources or time to obtain in-depth training in order to take advantage of all of the functions that a given computing system or even a single piece of software can perform. Thus, the design of software for modern computing systems often strives to provide user friendliness and an intuitive user interface. However, no degree of user friendliness or intuitive user interface design can accommodate all of various operations that all computing users would wish to perform. Accordingly, virtually all software applications and operating systems are provided with some form of computerized assistance content. Thus, when a user does not know how to perform a given operation, he or she can request help and an interface is provided from which the user can select or search among help topics.
The provision of assistance content is a very important aspect of the user experience for modern computing systems. By definition, users will request help once they have resigned themselves to the realization that they simply do not know how to do what they want to do on the computing system. This situation is frustrating. It is important, then, that the assistance be provided to the user quickly, and that the content be as relevant as possible to the user's situation.
Computerized assistance content has generally been provided in relation to a specific software environment. For example, an operating system is generally shipped with assistance content to help users in interacting with the operating system. Individual software applications for use with the operating system are often shipped with their own application-specific assistance content. Typically, a user requests help by selecting a “help” tab on a computer screen, or pressing a “help” button on an input device. Generally, the software entity with which the user is currently interacting, such as an application or operating system, will respond to the help request with a user interface from which the user can select or search among assistance content for that software entity. This approach is sometimes limited in that a user may not know that his or her question, being directed to the current software entity, may be better answered by assistance content available from another software entity. For example, if a user is interacting with a graphics software package, and wishes to perform a function such as installing an additional font, the user would likely press or request help. The graphics software package would respond to the help request and provide the user with an assistance interface. The user would interact with the interface to try to find topics related to “adding a font” but such content, even if available, may not be particularly relevant to the user's specific question. In contrast, had the same query been directed to the operating system, much more relevant content may have been found.
As modern computing systems continue to provide a wider array of features and functions to users thereof, it is increasingly important that computerized user assistance be done as quickly and accurately as possible. More efficient computerized user assistance is believed to enhance the overall user experience and provide more and more users with more effective access to enhanced features and functions of such modern computing systems.